package dumpwave
import (
	"fmt"
	"os"
	"log"
	"time"
	)

////////////////////////////////////////////////////////
//variaveis para criação do arquivo value dump chanel
var inicio time.Time
var f *os.File
////////////////////////////////////////////////////////

////////////////////////////////////////////////////////
//função para formatação da escrita no arquivo de curvas
///////////////////////////////////////////////////////

func Wave(valor int, data string,) {
	tempo:= (time.Now().Sub(inicio))/10000
	line := fmt.Sprintf("#%d\nb%b %s\n",tempo,valor,data)
	//operação de escrita
	_, erro := f.WriteString(line)
	if erro != nil {
		log.Fatal(erro)
	}
}


////////////////////////////////////////////////////////
	//cria/abre o arquivo em modo de escrita
	//disparo do relógio para sincronia dos values dumps
	///////////////////////////////////////////////////////
func IniciaWave(datainiciatial string){
	inicio = time.Now()
	_ = os.Remove("toto.vcd") //remover arquivo caso já exista
	f, _ = os.OpenFile("toto.vcd", os.O_CREATE | os.O_WRONLY, 0744)	
	_, _ = f.WriteString(datainiciatial)
	}
